#include <iostream>
#include <set>
#include <map>
#include <string>
#include "AVLtree.h"
using namespace std;

// void test()
// {
//     set<int> s;
//     s.insert(9);
//     s.insert(3);
//     s.insert(10);
//     s.insert(8);
//     s.insert(5);
//     s.insert(1);
//     s.insert(2);
//     s.insert(4);
//     s.insert(7);
//     s.insert(6);

//     set<int>::iterator it = s.begin();
//     while(it != s.end())
//     {
//         cout << *it <<" ";
//         it++;
//     }
//     cout << endl;

//     for(auto e:s)
//     {
//         cout << e <<" ";
//     }
//     cout <<endl;

//     set<int>::iterator pos = s.find(2);
//     if(pos != s.end())
//     {
//         cout << "找到了" <<endl;
//         s.erase(pos);
//     }

//     for(auto e:s)
//     {
//         cout << e <<" ";
//     }
//     cout <<endl;

//     s.erase(5);

//     for(auto e:s)
//     {
//         cout << e <<" ";
//     }
//     cout <<endl;
// }

// void test()
// {
//     set<int> s;
//     s.insert(9);
//     s.insert(3);
//     s.insert(10);
//     s.insert(8);
//     s.insert(5);
//     s.insert(1);
//     s.insert(2);
//     s.insert(4);
//     s.insert(7);
//     s.insert(6);

//     for(auto e:s)
//     {
//         cout << e <<" ";
//     }
//     cout <<endl;

//     set<int>::iterator start = s.lower_bound(3);//>=3 
//     cout << *start <<endl;
//     set<int>::iterator finish = s.upper_bound(6);//>6 开区间       
//     cout << *finish <<endl;

//     while(start != finish)
//     {
//         cout << *start <<" ";
//         start++;
//     }

//     cout <<endl;

//     s.erase(start,finish);//删除大于等于3~小于等于6的值
//     for(auto e:s)
//     {
//         cout << e <<" ";
//     }
//     cout <<endl;
// }

// void test()
// {
//     multiset<int> s;
//     s.insert(9);
//     s.insert(1);
//     s.insert(10);
//     s.insert(10);
//     s.insert(5);
//     s.insert(1);
//     s.insert(2);
//     s.insert(1);
//     s.insert(2);
//     s.insert(5);
//     multiset<int>::iterator it = s.begin();
//     while(it != s.end())
//     {
//         cout << *it <<" ";
//         it++;
//     }
//     cout << endl;

//     cout << s.count(1) <<endl;

//     it = s.find(1);
//     while(it != s.end())
//     {   
//         cout << *it <<" ";
//         it++;
//     }
//     cout << endl;
// }


// void test()
// {
//     map<string,string> dict;
//     dict.insert(pair<string,string>("sort","排序"));

//     pair<string,string> kv("string","字符串");
//     dict.insert(kv);

//     //c++11
//     dict.insert({"apple","苹果"});

//     //c++98
//     dict.insert(make_pair("start","开始"));

//     map<string,string>::iterator it = dict.begin();
//     while(it != dict.end())
//     {
//         cout << it ->first << it -> second << endl;
//         it++;
//     }

//     cout <<endl;

//     for(auto &e : dict)
//     {
//         cout << e.first << e.second <<endl;
//     }
// }


// void test()
// {
//     multimap<string,string> dict;
//     dict.insert({"apple","苹果"});
//     dict.insert({"start","开始"});
//     dict.insert({"string","字符串"});
//     dict.insert({"sort","排序"});
//     dict.insert({"sort","排序"});

//     for(auto &e : dict)
//     {
//         cout << e.first << e.second <<endl;
//     }
// }

#include "AVLtree.h"

int main()
{
    test();
    return 0;
}


